let Promise = require("./promise")
const fs = require("fs")

// 1. 延迟对象来解决嵌套问题
function readFile(...args) {
  // return new Promise((resolve, reject) => {
  let dfd = Promise.deferred()
  fs.readFile(...args, function (err, data) {
    if (err) return dfd.reject(err)
    dfd.resolve(data)
  })
  // })
  return dfd.promise
}

readFile("./a.txt", "utf8").then((data) => {
  console.log(data);
}).catch((err) => {
  console.log(err);
}) // catch 后面可以 继续调用 then 方法


// promise 的其他的静态方法 Promise.resolve() Promise.reject()
// Promise.resolve 和 Promise.reject 差异在 resolve 方法, 它具备等待效果
Promise.resolve("hello").then((data) => {
  console.log(data);
})

Promise.reject("reject").catch((err) => {
  console.log(err);
})
